import { createStore } from 'redux';

/*
  学习目标：Redux的推荐写法
*/

// 3. 提取初始为单独的变量
// 👍 推荐变量名叫initState
const initState = { count: 0, msg: '123', list: [{ id: 1, task: '学习React', isDone: true }] };

// 1. reducer函数的抽离，单独维护
// 👍推荐函数名为xxxReducer
function countReducer(state = initState, action) {
  // console.warn('action  ----->  ', action);
  // 2. 使用swtich语句替换if语句
  switch (action.type) {
    case 'add':
      return { ...state, count: state.count + 1 };
    case 'des':
      return { ...state, count: state.count - 1 };
    default:
      // 💥 注意给default条件加上返回值，作为初始state返回值
      return state;
  }
}

const store = createStore(countReducer);

console.log('store.getState().count  ----->  ', store.getState().count);

// 几个优化点？？
// 1. 抽离reducer函数，使用单独函数维护
// 2. switch语句替代if语句
// 3. 提取单独的变量initState维护初始state的值
